home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Disc to the Future 2
/
Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin
/
MAC
/
THINKC
/
5
/
DINKDEMO
/
DINKCLAS
/
DINKUTIL.C
< prev
next >
Wrap
Text File
|
1992-07-08
|
2KB
|
117 lines
/*
File: DinkUtils.c
Written by: Mark Gross
Copyright: ⌐ 1992 by Applied Technical Software, all rights reserved.
Use at your own risk.
*/
// this file has a number of utility fuctions
// for The DinkClass
#include "DinkUtils.h"
#include "DApplication.h"
#include "DEventHandler.h"
#include "DDocument.h"
#include <Editions.h>
#include <Traps.h>
#include <GestaltEqu.h>
extern DApplication *DEventHandler::gApplication;
void InitToolBox(int numMoreMasers)
{
int i;
EventRecord event;
MaxApplZone();
for (i=0; i<numMoreMasers; i++)
MoreMasters();
FlushEvents(everyEvent, 0);
InitGraf(&thePort);
InitFonts();
InitWindows();
InitMenus();
TEInit();
InitDialogs( NULL);
InitCursor();
InitEditionPack();
for (i = 1; i <= 3; i++)
EventAvail(everyEvent, &event);
}
OSErr RequiredCheck( AppleEvent *theAppleEvent)
{
OSErr myErr;
DescType typeCode;
Size actualSize;
myErr = AEGetAttributePtr( theAppleEvent, keyMissedKeywordAttr, typeWildCard,
&typeCode, 0L, 0, &actualSize);
if (myErr == errAEDescNotFound )
return noErr;
if (myErr == noErr )
return errAEEventNotHandled ;
return myErr;
}
Boolean System7Available(void)
{
long sysVersion;
if( !TrapExists(_GestaltDispatch) )
return false;
if( !Gestalt( gestaltSystemVersion, &sysVersion) )
{
if(sysVersion >= 0x0700)
return true;
}
return false;
}
Boolean TrapExists(short theTrap)
{
TrapType theTrapType;
theTrapType = GetTrapType(theTrap);
if ((theTrapType == ToolTrap) && ((theTrap &= 0x07FF) >= NumToolboxTraps()))
theTrap = _Unimplemented;
return (NGetTrapAddress(_Unimplemented, ToolTrap) != NGetTrapAddress(theTrap,
theTrapType));
}
TrapType GetTrapType(short theTrap)
{
/* OS traps start with A0, Tool with A8 or AA. */
if ((theTrap & 0x0800) == 0) /* per D.A. */
return (OSTrap);
else
return (ToolTrap);
}
short NumToolboxTraps(void)
{
if (NGetTrapAddress(_InitGraf, ToolTrap) == NGetTrapAddress(0xAA6E, ToolTrap))
return (0x200);
else
return (0x400);
}